package main

import (
	"fmt"
	"math"
	"strings"
)

func BinaryFormat(n int32) string { //输出一个int32对应的二进制表示
	a := uint32(n)               //把带符号的int32转换为无符号的uint32
	sb := strings.Builder{}      //把多个短字符拼接成一个长字符串
	c := uint32(math.Pow(2, 31)) //	做一个2的31次方运算
	for i := 0; i < 32; i++ {
		if a&c > 0 {
			sb.WriteString("1") //往SB后面拼接1
		} else {
			sb.WriteString("0") //往SB后面拼接0
		}
		c >>= 1 //将C往右移动一位
	}
	return sb.String()
}
func main() {
	fmt.Println(BinaryFormat(0))
	fmt.Println(BinaryFormat(100))
	fmt.Println(BinaryFormat(-100))
	fmt.Println(BinaryFormat(314159543))
	fmt.Println(BinaryFormat(-31415343))
}
